package persistencia;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import logica.Comentario;
import datas.DataNombre;

public class PersistirComentario extends Persistir {

	public PersistirComentario(){}
	
/*********************************************************************************************************/
/********************************************************************************************************/
	/*------------------- INGRESAR COMENTARIO --------------------------*/
	
	public void addComentario(Comentario nuevo) throws SQLException {	
		Statement agregar = this.getConexion().createStatement();
		ResultSet rs = agregar.executeQuery("SELECT Id FROM Cliente WHERE Nick = '"+nuevo.getNickCliente()+"'");
		int idCli = rs.getInt("Id");
		rs.close();
		
		rs = agregar.executeQuery("SELECT Id FROM Juego WHERE Nombre = '"+nuevo.getNombreJuego()+"'");
		int idJue = rs.getInt("Id");
		rs.close();
		
		agregar.execute("INSERT INTO Comentario (Texto, Fecha, Id_Juego, Id_Cliente, Id_Respuesta) VALUES ('"
						+ nuevo.getTexto()+ "', '"
						+ nuevo.getFecha().getTime()+ "', '"
						+ idJue+ "', '"
						+ idCli+ "', '"
						+ nuevo.getIdRespuesta()+ "');");
		
		agregar.close();
	
	}
	
	public ResultSet getComentariosDeObjeto(int id){
		ResultSet comentario = null;
		try {
			Statement obtener = this.getConexion().createStatement();
			ResultSet rs = obtener.executeQuery(""
			+ "SELECT com.Id, com.Texto, com.Fecha, jue.Nombre, cli.Nick "
			+ "FROM Comentario com, Juego jue, Cliente cli "
			+ "WHERE com.Id_Juego = jue.Id AND "
			+ "com.Id_Cliente = cli.Id AND "
			+ "com.Id_Respuesta = '"+id+"'");
			comentario = rs;
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		return comentario;
	}
	
	public ResultSet getComentariosPropiosObjeto(DataNombre juego){
		ResultSet comentario = null;
		try {
			Statement obtener = this.getConexion().createStatement();
			ResultSet rs = obtener.executeQuery(""
			+ "SELECT com.Id, com.Texto, com.Fecha, jue.Nombre, cli.Nick "
			+ "FROM Comentario com, Juego jue, Cliente cli "
			+ "WHERE com.Id_Respuesta = 0 AND "
			+ "com.Id_Cliente = cli.Id AND "
			+ "com.Id_Juego = jue.Id AND "
			+ "jue.Nombre = '"+juego.getNombre().toUpperCase()+"'");
			comentario = rs;
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		return comentario;
	}
/*********************************************************************************************************/
/********************************************************************************************************/
	/*------------------- CONSULTAR JEUGO ------------- CASCA --------------*/
	
	
	public ResultSet getComentariosPropios(int id){
		ResultSet comentario = null;
		
		try {
			Statement obtener = this.getConexion().createStatement();
			ResultSet rs = obtener.executeQuery(""
					+ "SELECT com.Id, com.Texto, cli.Nick, com.Fecha "
					+ "FROM Comentario com, Cliente cli "
					+ "WHERE com.Id_Respuesta = 0 AND "
					+ "com.Id_Cliente = cli.Id AND "
					+ "com.Id_Juego = '"+id+"'");
			comentario = rs;
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		
		return comentario;
	}

	
	
	public ResultSet getComentariosDe(int id){
		ResultSet comentario = null;

		try {
			Statement obtener = this.getConexion().createStatement();
			ResultSet rs = obtener.executeQuery(""
					+ "SELECT com.Id, com.Texto, cli.Nick, com.Id_Respuesta, com.Fecha "
					+ "FROM Comentario com, Cliente cli "
					+ "WHERE com.Id_Cliente = cli.Id AND "
					+ "com.Id_Respuesta = '"+id+"'");
			comentario = rs;
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		
		return comentario;
	}
	
/*********************************************************************************************************/
/********************************************************************************************************/
	/*------------------- ---------------------------*/

	
	
	
}
